package ExtendsDetail;

import java.util.Arrays;

public class Sub extends Base{

    public Sub(String name, int age) {//有2参构造器
        //super();//调用父类的无参构造器,或什么都不写
//        System.out.println("子类的String name, int age构造器被调用");
        //调用父类的 Base(String name) 构造器
//        super("hsp");
        //调用父类的 Base(String name, int age) 构造器
        super("hhh", 10);
        //super在使用时，必须放在构造器的第一行
        System.out.println("子类的String name, int age构造器被调用");
        //Arrays.sort();

    }

    public Sub() {//无参构造器
        super("smith", 10);
        System.out.println("子类的无参构造器被调用sub()...");
    }
    //当创建子类对象时，不管使用子类的哪个构造器，
    // 默认情况下总会去调用父类的无参构造器
    public Sub(String name) {//有1个参的构造器
    //do nothing....
        super("tom", 30);
        System.out.println("Sub的String name构造器被调用");
    }
    public void sayOk() {
        //非私有的属性和方法可以在子类直接访问
        //但是私有的属性和方法不能在子类直接访问
        //只能通过在父类定义一个公共的方法去访问
        System.out.println("n1=" + n1 + " n2=" + n2 + " n3=" + n3);
        test100();
        test200();
        test300();
//        test400();//私有的
        System.out.println("n4=" + getN4());
        callTest400();
    }

}
